package com.toommi.refuse.service.admin;

import com.github.pagehelper.PageInfo;
import com.toommi.refuse.entity.SysPermission;
import com.toommi.refuse.entity.SysRole;
import com.toommi.refuse.exception.AdminException;
import com.toommi.refuse.model.RolePermissionModel;

import java.util.List;

/**
 * ..
 * 系统角色操作
 *
 * @author yangg
 * @since 2019-07-29 17:50
 */
public interface SysRoleService {

    /**
     * 添加角色
     *
     * @param role 角色信息
     */
    void addSysRole(SysRole role) throws AdminException;

    /**
     * 删除指定角色
     *
     * @param id 角色id
     */
    void deleteSysRole(long id);

    /**
     * 修改角色信息
     *
     * @param sysRole 角色信息
     */
    void updateSysRole(SysRole sysRole) throws AdminException;

    /**
     * 查询角色列表
     *
     * @param pageNum  页码
     * @param pageSize 每页数据量
     * @param keyWord  查询关键字
     * @return 分页角色信息
     */
    PageInfo<SysRole> findSysRoles(int pageNum, int pageSize, String keyWord);

    /**
     * 新增、修改角色权限信息
     *
     * @param model 角色权限信息
     */
    void addRolePermission(RolePermissionModel model) throws AdminException;

    /**
     * 查询指定角色拥有的权限集合
     *
     * @param roleId 角色id
     * @return 角色拥有的权限集合
     */
    List<SysPermission> findRolePermissions(long roleId) throws AdminException;
}
